In a general cellular communications system, communications between two mobile nodes are routed through multiple agents. Each of the mobile nodes is typically connected to a forwarding agent. As an example, a mobile node 1 (“MN1”) typically uses a forwarding agent 1 (“FA1”) to have data forwarded to it from the mobile node 1's home agent 1 (“HA1”). Similarly, a mobile node 2 (“MN2”) uses another forwarding agent 2 (“FA2”) to have data forwarded to it from its home agent 2 (“HA2”). Thus, if mobile node 1 or forwarding agent 1 knows only the home address of mobile node 2, the data have to go through mobile node 2's home agent 2. Specifically, when mobile node 1 wants to communicate with mobile node 2, data from mobile node 1 is forwarded to forwarding agent 1, then to home agent 2, then to forwarding agent 2, and finally to mobile node 2 (i.e., MN1 to FA1 to HA2 to FA2 to MN2). Alternatively, using reverse tunneling for the data sent by mobile node 1, a route is created from mobile node 1, to forwarding agent 1, to home agent 1, to home agent 2, to forwarding agent 2, and mobile node 2 (i.e., MN1 to FA1 to HA1 to HA2 to FA2 to MN2). The multiple forwarding events between mobile node 1 and mobile node 2 is an inefficient routing of packets because network resources are being unnecessarily wasted and longer end-to-end delays are being created.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help improve understanding of various embodiments of the present invention. Also, common and well-understood elements that are useful or necessary in a commercially feasible embodiment are often not depicted in order to facilitate a less obstructed view of these various embodiments of the present invention.